package com.wn.service.impl;
import java.math.BigDecimal;
import java.util.Date;

import cn.hutool.core.util.RandomUtil;
import com.wn.pojo.Course;
import com.wn.pojo.Order;
import com.wn.mapper.OrderMapper;
import com.wn.service.ICourseService;
import com.wn.service.IOrderService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author yellow docker
 * @since 2023-06-28
 */
@Service
public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements IOrderService {
    
    @Autowired
    private ICourseService courseService;

    /**
     *  我们这里的 订单比较简单 授课
     *
     *  实际情况很复杂:
     *  1、判断是否重复下单
     *  2、一个商品是否可以买多个
     *  3、是否可以使用优惠券、是否有折扣、是否有活动
     *  4、是否计算积分
     *  5、是否扣减库存
     *  ...
     *
     * @param courseId
     * @return
     */
    @Override
    public Order addOrder(String courseId) {

        //查询课程
        Course course = courseService.getById(courseId);

        //创建订单
        Order order = new Order();
        order.setId("");
        order.setCourseId(courseId);
        //随机给一个用户id (可以前端传递、查询user表)
        order.setUserId(RandomUtil.randomLong(1000000L));
        //价格 
        order.setPrice(course.getPrice());
        // 付款状态   1  未付款
        order.setStatus(1);
        order.setMobile("18566231122");

        //添加到数据库中
        save(order);

        return order;
    }
}
